 1.ZooKeeper命令行操作
   现在已经搭建起了一个能够正常运行的zookeeper服务了了，所以接下来，就是来借助客户端来对
zookeeper的数据节点进⾏行行操作
   首先，进入到zookeeper的bin目录之后
   通过zkClient进入zookeeper客户端命令行
   ./zkcli.sh 连接本地的zookeeper服务器
   ./zkCli.sh -server ip:port(2181) 连接指定的服务器
   连接成功之后，系统会输出Zookeeper的相关环境及配置信息等信息。输入help之后，屏幕会输出可⽤用
的Zookeeper命令，如下图所示
   [zk: localhost:2181(CONNECTED) 3] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
   
   创建节点
   使用create命令，可以创建一个Zookeeper节点， 如
   create [-s][-e] path data
   其中，-s或-e分别指定节点特性，顺序或临时节点，若不指定，则创建持久节点
   ① 创建顺序节点
　 使用 create -s /zk-test 123 命令创建zk-test顺序节点
   [zk: localhost:2181(CONNECTED) 4] create -s /zk-test 123
   Created /zk-test0000000000
   执行完后，就在根节点下创建了一个叫做/zk-test的节点，该节点内容就是123，同时可以看到创建的
zk-test节点后⾯面添加了一串数字以示区别
   ② 创建临时节点
　 使用 create -e /zk-temp 123 命令创建zk-temp临时节
   [zk: localhost:2181(CONNECTED) 1] create -e /zk-temp 123
    Created /zk-temp
   [zk: localhost:2181(CONNECTED) 2] ls /
   [zk-test0000000000, zookeeper, zk-temp]
   临时节点在客户端会话结束后，就会自动删除，下面使用quit命令退出客户端
   [zk: localhost:2181(CONNECTED) 3] quit
    Quitting...
   再次使用客户端连接服务端，并使用ls / 命令查看根⽬目录下的节点
   [zk: localhost:2181(CONNECTED) 0] ls /
   [zk-test0000000000, zookeeper]
   可以看到根目录下已经不存在zk-temp临时节点了
   ③ 创建永久节点
   使用 create /zk-permanent 123 命令创建zk-permanent永久节点 ,可以看到永久节点不同于顺序节
点，不会自动在后面添加一串数字
   [zk-test0000000000, zookeeper]
   [zk: localhost:2181(CONNECTED) 1] create /zk-permanent 123
    Created /zk-permanent
   [zk: localhost:2181(CONNECTED) 2] ls /
   [zk-permanent, zk-test0000000000, zookeeper]
   读取节点
   与读取相关的命令有ls 命令和get 命令
   ls命令可以列列出Zookeeper指定节点下的所有子节点，但只能查看指定节点下的第一级的所有子节点；
   ls path
   其中，path表示的是指定数据节点的节点路径
   get命令可以获取Zookeeper指定节点的数据内容和属性信息。
   get path
   若获取根节点下面的所有子节点，使⽤用ls / 命令即可
   [zk: localhost:2181(CONNECTED) 2] ls /
   [zk-permanent, zk-test0000000000, zookeeper]
   若想获取/zk-permanent的数据内容和属性，可使用如下命令：get /zk-permanent
   [zk: localhost:2181(CONNECTED) 3] get /zk-permanent
123
cZxid = 0x300000008
ctime = Thu Jul 16 04:33:41 EDT 2020
mZxid = 0x300000008
mtime = Thu Jul 16 04:33:41 EDT 2020
pZxid = 0x300000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
   从上面的输出信息中，我们可以看到，第一行是节点/zk-permanent 的数据内容，其他几行则是创建该
节点的事务ID（cZxid）、最后⼀一次更新该节点的事务ID（mZxid）和最后⼀一次更新该节点的时间
（mtime）等属性信息
   更新节点
  使用set命令，可以更更新指定节点的数据内容，用法如下
  set path data
  其中，data就是要更新的新内容，version表示数据版本，在zookeeper中，节点的数据是有版本概
念的，这个参数用于指定本次更新操作是基于Znode的哪一个数据版本进行的，如将/zk-permanent节
点的数据更新为456，可以使⽤用如下命令：set /zk-permanent 456
  [zk: localhost:2181(CONNECTED) 4] set /zk-permanent 456
cZxid = 0x300000008
ctime = Thu Jul 16 04:33:41 EDT 2020
mZxid = 0x300000009
mtime = Thu Jul 16 05:07:00 EDT 2020
pZxid = 0x300000008
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
   
   现在dataVersion已经变为1了，表示进行了更新
   删除节点
　 使用delete命令可以删除Zookeeper上的指定节点，用法如下
   delete path
   其中version也是表示数据版本，使⽤用delete /zk-permanent 命令即可删除/zk-permanent节点
   [zk: localhost:2181(CONNECTED) 8] delete /zk-permanent
   [zk: localhost:2181(CONNECTED) 9] ls /
   [zk-test0000000000, zookeeper]
   可以看到，已经成功删除/zk-permanent节点。值得注意的是，若删除节点存在子节点，那么无法删除
该节点，必须先删除子节点，再删除父节点